package uk.ac.aber.paws.client.util;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;

/**
 * @author Rob Johnson, Aberystwyth University
 * @email rob.johnson@aber.ac.uk
 * @date 16th August 2011
 * 
 * MACAddressFinder.java
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

public class MACAddressFinder {

	public static String getMAC(InetAddress addr) {
		
		String address = "";
		NetworkInterface ni;
		
		try {
			
			ni = NetworkInterface.getByInetAddress(addr);
			
			if (ni != null) {
				
		         byte[] mac = ni.getHardwareAddress();
		         
		         if (mac != null) {   
		             for (int k = 0; k < mac.length; k++) {
		                 address += String.format("%02X%s", mac[k], (k < mac.length - 1) ? "-" : "");
		             }
		         }
		         else {
		             System.out.println("Address doesn't exist");
		         }
			}
			else {
				System.out.println("address is not found.");
			}
		} 
		catch (SocketException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		
		return address; 
	}
}